Generating a response to video content request including dynamically processed video content

ABSTRACT

In one embodiment, a video processing server including a memory capable of storing data and a processor is disclosed. The processor is configured for using the data such that the video processing server can receive a request redirected from a gateway for a video content, wherein the request is redirected by the gateway based on information contained in the request and wherein the information contained in the request includes control data used for an optimal delivery of the video content. The processor is further configured for using the data such that the video processing server can send the redirected request to a content provider identified in the request, receive the requested video content from the content provider, and generate a response to the request by modifying the video content based on the control data.

FIELD OF THE DISCLOSURE

The present disclosure generally relates to generating a response to arequest for video content including dynamically processed video content.

BACKGROUND

Wireless networks are telecommunications networks that use radio wavesto carry information from one node in the network to one or morereceiving nodes in the network. Wired communication can also be used inportions of a wireless network, such as between cells or access points.Cellular telephony is characterized by the use of radio cells thatprovide radio coverage for a geographic area, with multiple cellsarranged to provide contiguous radio coverage over a larger area. Thefirst generation of wireless telephone technology used analog mobilephones in which analog information signals were transmitted. Astechnology progressed a second generation (2G) of wireless service wasintroduced. In 2G systems, digital information signals were used tomodulate a carrier. Such networks that were upgraded to handlehigher-speed packet data in networks referred to as 2.5G and 3Gnetworks. The next evolution is 4G technology, which is referred to aslong term evolution-system architecture evolution (LTE-SAE) and usesorthogonal frequency division multiple access (OFDMA) technology.

Wireless communication technologies are used in connection with manyapplications, including, for example, satellite communications systems,portable digital assistants (PDAs), laptop computers, and mobile devices(e.g., cellular telephones, user equipment). One benefit that users ofsuch applications can obtain is the ability to connect to a network(e.g., the Internet) as long as the user is within range of such awireless communication technology. Current wireless communicationsystems use either, or a combination of, circuit switching and packetswitching in order to provide mobile data services to mobile devices.Generally speaking, with circuit-based approaches, wireless data iscarried by a dedicated (and uninterrupted) connection between the senderand recipient of data using a physical switching path. Packet-basedapproaches, on the other hand, do not permanently assign transmissionresources to a given session, and do not require the set-up andtear-down of physical connections between a sender and receiver of data.In general, a data flow in packet-based approaches is divided intoseparate segments of information or packets. The data flow may include anumber of packets or a single packet.

Another aspect gaining interest and prominence is the ability to provideseamless Internet video traffic to mobile users. Internet video trafficcurrently takes up a significant portion of all the consumer traffic.More importantly, it is likely to account for a much bigger portion ofthe consumer traffic in near future. Demands for Internet video has onlybeen increasing since it has become available to the consumers. Thismeans that the existing networks would likely become overloaded with theever increasing video traffic.

Overview

This disclosure relates to systems, methods, and logic encoded in one ormore tangible media for generating a response to a request for videocontent including dynamically processed video content. In oneembodiment, a video processing server including a memory capable ofstoring data and a processor is disclosed. The processor is configuredfor using the data such that the video processing server can receive arequest redirected from a gateway for a video content, wherein therequest is redirected by the gateway based on information contained inthe request and wherein the information contained in the requestincludes control data used for an optimal delivery of the video content.The processor is further configured for using the data such that thevideo processing server can send the redirected request to a contentprovider identified in the request, receive the requested video contentfrom the content provider, and generate a response to the request bymodifying the video content based on the control data.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1-2 illustrate communication networks including a long termevolution (LTE) topology in accordance with some embodiments;

FIG. 3 illustrates a communication network where processing is providedthrough an interface in accordance with certain embodiments;

FIG. 4 is a message/signaling flow diagram illustrating dynamicprocessing of a response to a video content request by trans-ratingand/or trans-coding of the video content at a video processing server inaccordance with certain embodiments;

FIG. 5 is a message/signaling flow diagram illustrating dynamicprocessing of a response to a video content request at a videoprocessing server based on enhanced request information in accordancewith certain embodiments;

FIG. 6 is a message/signal flow diagram illustrating dynamic processingof a response to a video content request directed to a video processingserver by a proxy in accordance with certain embodiments;

FIG. 7 is a message/signaling flow diagram illustrating generation of aresponse to a video content request that is not directed to a videoprocessing server in accordance with certain embodiments; and

FIG. 8 illustrates components of a gateway in accordance with certainembodiments.

DESCRIPTION OF EXAMPLE EMBODIMENTS

Systems, methods, and logic encoded in one or more tangible media aredisclosed for generating a response to a request for video contentincluding dynamically processed video content. One way to handle theever increasing mobile demand for Internet video content would be tocustomize the video content to each kind of mobile network and/or mobiledevice, whereby the amount of bandwidth needed in the wireless networkas well as the backhaul network to carry the video traffic would bereduced. One way to achieve the reduction of bandwidth requirementwithout sacrificing the capacity of the existing platform is to usevideo processing servers to dynamically process certain data streams.When a gateway receiving requests for video content detects requests forvideo streams requiring dynamic processing based on pre-definedcriteria, e.g., URL match or the like, such requests are directed to avideo processing server. The video processing server performs desireddynamic processing on the video content received from content providersbased on relevant information, such as content type, mobile type,subscription information, and the like. The video processing server thensends the dynamically processed video content back to the gateway forfurther processing.

FIG. 1 illustrates a communication network 101 that includes systems,methods, and logic encoded in one or more tangible media for generatinga response to a request for video content including dynamicallyprocessed video content in accordance with certain embodiments.Referring to FIG. 1, the communication network 101 includes a number ofradio access technologies such as a 1×RTT transceiver 100, a high-ratepacket data (HRPD) transceiver 102, and an evolved high-rate packet data(eHRPD) transceiver 104, each of which can connect to an access network106. An evolved Node B (eNodeB) transceiver 108 is an LTE network radionetwork component that connects to an Evolved UMTS Terrestrial RadioAccess Network (E-UTRAN) 110. Other radio access technologies such asWiFi, Femto, WiMAX, or any other radio spectrum technology can usetransceiver 112 to connect to the network using a broadband or otheraccess network.

The access network 106 can communicate with an access gateway 116 thatimplements a combination of functionalities such as a packet dataserving node (PDSN), a HRPD serving gateway (HSGW), and a servinggateway (SGW). In operation, the PDSN functionality can be used with1×RTT 100, the HSGW functionality can be used with HRPD 102 and eHRPD104, and the SGW functionality can be used with the eNodeB 108. Theaccess gateway 116 can communicate with an anchor gateway 118, which canimplement a packet data network gateway (PGW) and a Home Agent (HA), anda mobility management entity (MME) 120. On the access network side, theanchor gateway 118 can also communicate with an evolved packet datagateway (ePDG) 122 which provides connectivity to the WiFi/Femto/othertransceiver 112. On the packet core side, the anchor gateway cancommunicate with the operator's IP service domain 124, the internet 126,and IP multimedia subsystem (IMS) 128. An authentication, authorization,and accounting (AAA) server/home subscriber server (HSS) 130 cancommunicate with the access gateway 116, the anchor gateway 118, orboth.

The Home Subscriber Server (HSS) 130 can be a master user database thatsupports IMS network entities that handle calls. The HSS 130 storessubscription-related information (subscriber profiles), performsauthentication and authorization of the user, and can provideinformation about the subscriber's location and IP information. The AAAserver 130 can provide authentication, access control, and accounting tothe network. The authentication can involve verification of thesubscriber, the access control can involve granting or denying access tospecific services, and the accounting that can take place is thetracking of the use of network resources by subscribers. Other servers,such as the Home Location Register (HLR) can be used in otherembodiments. In certain embodiments, the AAA/HSS 130 can communicatewith the access gateway 116 for charging purposes.

The LTE communication network includes a PDN gateway (PGW) 118, aserving gateway (SGW) 116, an E-UTRAN (evolved-UMTS terrestrial radioaccess network) 110, and a mobility management entity (MME) 120. Theevolved packet core (EPC) of an LTE communications network includes theMME 120, SGW 116 and PGW 118 components. In some embodiments, one ormore EPC components can be implemented on the same gateway or chassis asdescribed below.

The SGW sits in the user plane where it forwards and routes packets toand from the eNodeB and PGW. The SGW also serves as the local mobilityanchor for inter-eNodeB handover and mobility between 3GPP networks. TheSGW routes and forwards user data packets, while also acting as themobility anchor for the user plane during inter-eNB handovers and as theanchor for mobility between LTE and other 3GPP technologies (terminatingS4 interface and relaying the traffic between 2G/3G systems and PGW).For idle state UEs, the SGW terminates the down link data path andtriggers paging when down link data arrives for the UE. The SGW managesand stores UE contexts, e.g. parameters of the IP bearer service andnetwork internal routing information. The SGW also performs replicationof the user traffic in case of lawful interception.

The PGW acts as the interface between the LTE network and other packetdata networks, such as the Internet or SIP-based IMS networks (fixed andmobile). The PGW serves as the anchor point for intra-3GPP networkmobility, as well as mobility between 3GPP and non-3GPP networks. ThePGW acts as the Policy and Charging Enforcement Function (PCEF), whichmanages Quality of Service (QoS), online/offline flow-based chargingdata generation, deep-packet inspection, and lawful intercept. The PGWprovides connectivity to the UE to external packet data networks bybeing the point of exit and entry of traffic for the UE. A UE may havesimultaneous connectivity with more than one PGW for accessing multiplepacket data networks. The PGW performs policy enforcement, packetfiltering for each user, charging support, lawful interception, andpacket screening. The PGW also provides an anchor for mobility between3GPP and non-3GPP technologies such as WiMAX and 3GPP2 standards (CDMA1× and EVDO).

The MME resides in the EPC control plane and manages session states,authentication, paging, mobility with 3GPP 2G/3G nodes, roaming, andother bearer management functions. The MME can be a standalone elementor integrated with other EPC elements, including the SGW, PGW, andRelease 8 Serving GPRS Support Node (SGSN). The MME can also beintegrated with 2G/3G elements, such as the SGSN and GGSN. Thisintegration is the key to mobility and session management interworkingbetween 2G/3G and 4G mobile networks.

MME 120 is a control-node for the LTE access network. The MME isresponsible for UE tracking and paging procedures includingretransmissions. MME 120 handles the bearer activation/deactivationprocess and is also responsible for choosing the SGW for a UE at theinitial attachment and at time of an intra-LTE handover. The MME alsoauthenticates the user by interacting with the HSS 130. The MME alsogenerates and allocates temporary identities to UEs and terminatesNon-Access Stratum (NAS) signaling. The MME checks the authorization ofthe UE to camp on the service provider's Public Land Mobile Network(PLMN) and enforces UE roaming restrictions. The MME is the terminationpoint in the network for ciphering/integrity protection for NASsignaling and handles the security key management. Lawful interceptionof signaling is also supported by the MME. The MME also provides thecontrol plane function for mobility between LTE and 2G/3G accessnetworks with the S3 interface terminating at the MME from the SGSN (notshown). The MME also terminates the S6a interface towards the home HSSfor roaming UEs.

The ePDG 122 is responsible for interworking between the EPC and fixednon-3GPP access technologies such as a WiFi, WiMAX, LTE metro, andfemtocell access networks. The ePDG 122 can use IPSec/IKEv2 to providesecure access to the EPC network. Optionally, the ePDG can use ProxyMobile IPv6 (PMIPv6) to interact with the PGW when the mobile subscriberis roaming in an untrusted non-3GPP system. The ePDG is involved intunnel authentication and authorization, transport level packet markingin the uplink, policy enforcement of Quality of Service (QoS) based oninformation received via Authorization, Authentication, Accounting (AAA)infrastructure, lawful interception, and other functions.

FIG. 2 illustrates a communication network 201 that implements systems,methods, and logic encoded in tangible media for generating a responseto a request for video content including dynamically processed videocontent with legacy universal mobile telecommunications systems (UMTS)network devices in accordance with certain embodiments. Referring toFIG. 2, the legacy transceivers include base transceiver station (BTS)200 and NodeB transceiver 202. The BTS 200 can communicate with a GSMEDGE Radio Access Network (GERAN) 204 and the NodeB 202 can communicatewith a UMTS terrestrial radio access network (UTRAN) 206. The servingGPRS support node (SGSN) can be implemented on a gateway 208 havingprocessor(s) 208A and memory 208B with a mobility management entity(MME). The GERAN 204 can communicate through the SGSN functionality ongateway 208 to serving gateway (SGW) 212 having processors 212A andmemory 212B or gateway GPRS support node (GGSN)/PGW 214.

In some embodiments, the systems, methods, and logic encoded in tangiblemedia for generating a response to a request for video content includingdynamically processed video content can be implemented on a gateway,such as PDSN/HSGW/SGW 116. The gateway can access and maintaininformation relating to the communication session, the subscriber, theradio bearers, and the policies relating to the communication session.The gateway may be used to provide various services to a mobile deviceand implement the quality of service (QoS) on packet flows. Several ofthese functions are used in providing, for example, voice over IP (VoIP)routing and enhanced services, such as enhanced charging, statefulfirewalls, traffic performance optimization (TPO). The communicationnetworks also allow provision of applications such as VoIP, streamingvideo, streaming music, multi-user gaming, location based services, anda variety of content delivered to a mobile node. Residing within thegateway can be one or more network processing units, line cards, as wellas packet and voice processing cards.

FIG. 3 illustrates a communication network 300 where processing isprovided through an interface in accordance with certain embodiments.Referring to FIG. 3, the communication network 300 can include mobiledevices such as user equipment (UE) 220, 222, and 224, an evolved NodeB(eNB) 108, a serving gateway (SGW) 212, a MME/SGSN 208, a PGW/GGSN 214,a policy and charging rules function (PCRF) 226, video processingservers 228 and 230, application servers 232, 234, and 236, packet datanetwork/Internet 126, backhaul network 238, and mobile network operatorcore network 240. The PCRF 226 can encompass policy control decision andpacket flow based charging control functionalities. PCRF 226 can be usedto supply policy and rules that are enforced at the gateway thatinclude, for example, the QoS provided, the features available to amobile node, and the charging that is performed. The video processingservers 228 and 230 include stand alone network devices that processmedia content such as video to provide services such as compression,trans-coding, and trans-rating. Application or content servers 232, 234,and 236 can provide media content such as video, games, audio, orinteractive content, for example, to user equipment 220, 222, and 224.

Media processing can be performed on one of video processing servers 228or 230, or on the gateway, such as PGW 214. This processing can includecompression, trans-coding, and trans-rating. Trans-rating includeschanging the bit-rate (bandwidth) of a media stream through processing.For example, an input video stream of 1 Mbps can be processed so thatthe output stream is 256 Kbps. Trans-rating can increase or decrease thebit-rate, and usually involves changing the encoding parameters (usuallyquantization). Trans-coding can involve changing the encoding or formatof the media stream, including changing the stream to a more lossyformat. Compression can be introduced with trans-rating or trans-coding,or be performed separately on the header and/or payload.

One type of compression that can be performed is robust headercompression (ROHC), which is a way to compress headers of communicationnetwork packets. The types of headers that undergo compression areinternet protocol (IP) headers, user datagram protocol (UDP) headers,real-time transport protocol (RTP) headers, and transport controlprotocol (TCP) headers. In streaming applications, the overhead of IP,UDP, and RTP headers can be 40 bytes for IPv4, or 60 bytes for IPv6.Depending on the situation, this can consume a significant amount ofbandwidth on the wireless link. For example, ROHC can be used tocompress these 40 bytes or 60 bytes of overhead into 1 or 3 bytes byplacing a compressor before the link and a decompressor after that link.The compressor converts the large overhead to only a few bytes, whilethe decompressor does the opposite. The ROHC algorithm is similar tovideo compression, in that a base frame and then several differenceframes are sent to represent an IP packet flow. This has the advantageof allowing ROHC to survive many packet losses in its highestcompression state, as long as the base frames are not lost. Videocompression can also be introduced on the payload of packets thatinvolves a base frame and then several difference frames to representthe video content. The compression processing can involve theapplication of a discrete cosine transform (DCT), a discrete wavelettransform (DWT), fractal compression, or matching pursuit to providecompression of media.

In operation, a media stream such as a movie can be requested by UE 224.This request is used to setup a packet flow 242 from server 232 tomobile device 224. Packet flow 242 is sent from server 232 toPDN/Internet 126 where it can be routed and tunneled to gateway 214. Thegateway 214 can either detect or know that the packets in packet flow242 contain video information. The gateway 214 can use information suchas policy, session, and/or subscriber information to determine how tohandle packet flow 242. The handling can include offloading packet flow242 for processing at video processing server 230. An interface, such asan application programming interface (API), can be used to interact withvideo processing server. The APIs can include open graphics library(OpenGL), open computing language (OpenCL), and/or simple direct-medialayer (SDL).

The interface can be used to offload or transmit the packet flow 242 tovideo processing server 230 along with varying amounts of controlinformation. The control information can include a dynamic videoprocessing profile that instructs the video processing server on how toprocess the video and/or raw data that the video processing server canuse in processing the video. The raw data can include information suchas location, time of day (ToD), access technology, quality of service(QoS) including a QoS class identifier (QCI), handover capability,roamer, device type (e.g., machine to machine (M2M), smart phone),subscriber type (e.g., premium user, post paid user, blacklisted user),inter-UE transfer (IUT) status, service type (e.g., video on demand(VoD), over-the-top (OTT), Internet Protocol television (IPTV)), and/orlawful intercept (LI) status.

After processing packet stream 242 at video processing server 230,PGW/GGSN 214 sends the packet stream 242 across the MNO core 240 to SGW212. SGW 212 can direct packet flow 242 across backhaul network 238 toeNB 108. At eNB 108, the packet flow 242 can be converted to radio wavesand sent over an airlink to UE 224. An access technology can determinethe frequency and other characteristics of the radio wave communicationbetween the UE 224 and eNB 108.

In other embodiments, a packet flow can also be passed through gateway214 without processing the packet flow or processed on the gateway 214using a circuit board card connected in the chassis running gateway 214.As shown in packet flow 244, at gateway 214 the packet flow is processedin-line on the gateway itself without sending the packet flow to aseparate device. Processing packet flow 244 on the gateway 214 canprovide less delay, conserve network resources, and simplify thenetwork. The processing preformed on the media content can also bevaried including any combination of trans-coding, trans-rating, andcompression. The gateway can also provide charging capability to allowoperators to adjust charging based on the type of processing performedon the media content.

FIG. 4 is a message/signaling flow diagram 400 illustrating dynamicprocessing of a response to a video content request by trans-ratingand/or trans-coding of the video content at a video processing server inaccordance with certain embodiments. Referring to FIG. 4, a userequipment (UE) 402 sends a request 410, such as a Hypertext TransferProtocol (HTTP) request, addressed to a content provider 408, such asyoutube.com, for video content. The HTTP request 410 is first receivedby a gateway, such as packet data gateway (PGW) 404, for furtherprocessing. It is assumed that an IP-Connectivity Access Network (IPCAN) session has been established between the UE 402 and the PGW 404.

Next, an Access Control Server (ACS) in the PGW 404 determines whetherto direct the request 410 to a video processing server 406 based on theinformation contained in the request 410, such as the address, or theuniform resource locator (URL), of the content provider 408. In someembodiments, for example, the ACS relies on a pre-defined list of URLsof video content provider for making the redirection determinations.

Once the ACS determines to direct the video content request 410 to thevideo processing server 406, the PGW 404 sends a redirect request 412 tothe UE 402. Upon receiving the redirect request 412, the UE 402 sends aredirected request 414 to the video processing server 406. The videoprocessing server 406 then terminates the HTTP connection from the UE402 and originates a copy of the redirected request 414 to the addressedcontent provider 408. Upon receiving the request 414, the contentprovider 408 generates a response 416 including the requested videocontent and sends it back to the video processing server 406. In someembodiments, the video processing server 406 originates the redirectedrequest 414 to, and receives the response 416 from, the content provider408 by establishing HTTP connections. In other embodiments, the videoprocessing server 406 may establish IP connections or virtual LAN (VLAN)connections for originating the redirect request 414 to, and receiving aresponse 416 from, the content provider 408.

Upon receiving the response 416 from the content provider 408, the videoprocessing server 406 dynamically processes the response 416 to generatea dynamically processed response 418 based on the information containedin the request 414, such as the device type of the UE 402, as well asthe information contained in the response 416, such as the content type(e.g., video/H264). For example, the header of an HTTP request 414 maycontain User-Agent information that may include device type of the UE402. Based on the device type of the UE 402, for instance, the requestedvideo content in the response 416 may be trans-rated (e.g., data ratereduction) so that the video content can be adapted to the screen sizeof the UE 402, thereby conserving the bandwidth used in the mobilenetwork serving the UE 402. The video processing server 406 then sendsthe dynamically processed response 418 back to the UE 402.

Wherein the response 416 indicates that the content type is a real-timevideo stream (e.g., application/sdp), the UE 402 initiates a real-timestreaming protocol (RTSP) session upon receiving the dynamicallyprocessed response 418 to receive the real-time stream. In someembodiments, the ACS, or enhanced charging service (ECS), in the PGW 404detects the RTSP session and readdresses the session to the videoprocessing server 406. The video processing server 406 then receives thereal-time video stream from the content provider 408 and processes thereal-time stream for an optimal delivery to the UE 402. For example, thevideo processing server 406 can trans-code the real-time stream beforesending the stream to the UE 402. In some embodiments, the real-timevideo stream can be modified (e.g., trans-rating, trans-coding, etc.)based on the changes in the network, such as handoffs, congestions, andover subscriptions, that are dynamically detected by the PGW 404.

FIG. 5 is a message/signaling flow diagram 500 illustrating dynamicprocessing of a response to a vide content request at a video processingserver based on enhanced request information in accordance with certainembodiments. Referring to FIG. 5, the UE 402 sends a request 502addressed to the content provider 408 for video content to the PGW 404,which receives the request 502 and determines whether to redirect it tothe video processing server 406 based on the information included in therequest 502, such as the address, or URL, of the content provider 408.Upon deciding to redirect the request 502, the PGW 404 sends a redirectrequest 504 to the UE 402, which in turn sends a redirected request 506to the video processing server 406 via the PGW 404.

The ACS or ECS in the PGW 404 intercepts the redirected request 506 andenriches the request 506 with additional information. For example,additional information may be added to enrich the HTTP header of aredirected HTTP request 506 as part of x-header fields. Table 1, shownbelow, includes the attributes supported for HTTP header enrichment.

TABLE 1 HTTP Header Enrichment Parameters HTTP Extended Parameters Valuex-url The original requested URL x-ggsn-address GGSN/PGW addressx-sgsn-address SGSN/SGW/HSGW address x-imsi IMSI of the subscriberx-subscirber-ip- IP address assigned to the subscriber address x-qosQCI; UplinkGBR; DownlinkGBR; UplinkMBR; DownlinkMBR x-access-type Radioaccess technology type x-subscriber-profile- String value identifying aspecific subscriber id profile on the video processing serverx-roaming-status Roaming status of the subscriber x-subs-profile Gold,Silver, and Bronze customer x-time-of-day Red, Orange, and Green, whichwould trigger Vantrix Bandwidth Optimizerto use a trans-coding/transrating profiles D, E. and F, respectively x-watermark YESwould trigger Vantrix Bandwidth Optimizer to apply watermarking

The PGW 404 then sends the enriched request 506 to the video processingserver 406, which terminates the HTTP connection from the UE 402 andoriginates a copy of the enriched request 506 to the content provider408. The content provider 408 processes the request 506, generates aresponse 508 including the requested video content, and sends theresponse 508 back to the video processing server 406. The videoprocessing server 406 then dynamically processes the video contentincluded in the response 508 in order to generate a dynamicallyprocessed response 510 based on the information contained in theenriched request 506 and the information included in the response 508.The video processing server 406 then sends the dynamically processedresponse 510 back to the UE 402. In some embodiments, the PGW 404receives the dynamically processed response 510 and forwards it back tothe UE 402.

In some embodiments, the PGW 404 further processes the dynamicallyprocessed response 510 before forwarding it back to the UE 402. Forexample, the PGW 404 may further process the video content in theresponse 510 based on the subscription level of the subscriberoriginating the video content request (UE 402). The PGW 404 may alsoperform additional processing of the video content based on a costbenefit analysis involving potential bandwidth saving and the videocontent quality enhancement. In some embodiments, the PGW 404 may choosea method of processing the video content for the most cost effectivedelivery of the content. In other embodiments, the PGW 404 would choosea processing method that can achieve increased delivery speed of therequested content and/or enhanced quality of the delivered content.

In some embodiments, for example, an enrichment parameter, such asx-subscriber-profile-id or x-subs-profile, can be used to enrich theredirected request 506, causing the video processing server 406 togenerate the dynamically processed response 510 using specificsubscriber profile information for deciding the specific processingfunctions to be performed on the requested video content. In someembodiments, an enrichment parameter, such as x-time-of-day, can be usedto enrich the redirected request 506, causing the video processingserver 406 to generates the dynamically processed response 510 basedalso on the time of the day information. For example, the videoprocessing server 406 may trans-rate the video content in the response508 at a lower bit rate during the prime time evening when there is ahigh volume of demands for video content, in order to prevent the mobilenetwork carrying the video traffic from suffering congestion andresulting delays.

In some embodiments, an enrichment parameter, such as x-watermark, canbe used to enrich the redirected request 506, causing the videoprocessing server 406 to add watermark information to the dynamicallyprocessed response 510. For example, the video processing server 406 mayoverlay the video content in the dynamically processed response 510 withstatic images data before sending the response 510 back to the UE 402.For instance, the video processing server 406 may overlay the videocontent with a static image related to a local advertisement, such as animage of a restaurant and its telephone number, an image for advertisinga visiting circus, etc. The video processing server 406 may also overlaythe video content in the dynamically processed response 510 with videoimage data. For instance, the video processing server 406 may overlaythe video content with a video data image, such as crawling text showingnear real-time stock quotes or headline news.

In some embodiments, enrichment parameters, such as x-qos and/orx-access-type, can be used to enrich the redirected request 506, causingthe video processing server 406 to generate the dynamically processedresponse 510 based on the quality of service (QoS) allocated to themobile network carrying the requested video content and/or the mobileaccess technology of the mobile network. For example, the video contentmay be trans-rated based on the mobile QoS or mobile access technologyspecified in the enriched request 506.

FIG. 6 is a message/signal flow diagram 600 illustrating dynamicprocessing of a response to a video content request directed to a videoprocessing server by a proxy in accordance with certain embodiments.Referring to FIG. 6, the UE 402 sends a request 602 addressed to thecontent provider 408 for video content. The PGW 404 receives the request602 and the ACS in the PGW 404 determines whether to send it to thevideo processing server 406 based on the information included in therequest 602, such as the address, or URL, of the content provider 408.

Upon deciding to direct the request 602 to the video processing server406, the ACS enriches the request 602 with additional information, suchas shown in Table 1, and directs the enriched request 604 to a proxyserver in the PGW 404, such as an internal HTTP proxy server. The proxyserver then directs the enriched request 604 to the video processingserver 406, saving the delay associated with having to redirect therequest.

Upon receiving the enriched request 604, the video processing server 406terminates the HTTP connection from the UE 402 and originates a copy ofthe enriched request 604 to the content provider 408. The contentprovider 408 processes the request 604, generates a response 606including the requested video content, and sends the response 606 to thevideo processing server 406. The video processing server 406 thendynamically modifies the video content included in the response 606 inorder to generate a dynamically processed response 608 based on theinformation contained in the enriched request 604 and the informationincluded in the response 606, such as the content type. The videoprocessing server 406 then sends the dynamically processed response 608back to the UE 402. In some embodiments, the PGW 404 receives thedynamically processed response 608 and forwards it back to the UE 402.In some embodiments, the PGW 404 further processes the dynamicallyprocessed response 608 before forwarding it back to the UE 402.

FIG. 7 is a message/signaling flow diagram 700 illustrating generationof a response to a video content request that is not directed to a videoprocessing server in accordance with certain embodiments. Referring toFIG. 7, the UE 402 sends a request 702 addressed to the content provider408 for video content. The PGW 404 receives the request 702 and the ACSin the PGW 404 determines whether to send the request 702 to the videoprocessing server 406 based on the information included in the request702, such as the address, or URL, of the content provider 408.

If dynamic processing of the requested video content is likely toconsume only marginal CPU and/or memory resources, the processing may beperformed at the PGW 404 at the expense of causing marginal impact onperformance of the PGW 404. The video processing performed at the PGW404, instead at the video processing server 406, is referred to asinline dynamic processing. Table 2, shown below, includes a list ofinline dynamic processing functions.

TABLE 2 Inline Dynamic Video Processing Functionality and ProcessingEstimates Inline Processing Memory CPU Function Impact Impact Number ofUser Impacted Trans-coding HIGH HIGH Low: possibly for some old mobiledevices Trans-rating HIGH HIGH Potentially High: due to the number ofdifferent display resolutions that need to be supported Static ImageHIGH HIGH Potentially High: Overlay Advertisement Overlay Video OverlayHIGH HIGH Potentially High: Advertisement Overlay Alpha Blending HIGHHIGH N/A & Video Effects Text Overlay MEDIUM MEDIUM Potentially High:Advertisement Overlay Video Insertion MEDIUM MEDIUM Potentially High:Advertisement Overlay Content Inser- LOW LOW HIGH: With technologieslike tion & HTTP Live, the video is Caching with segmented and the playlist segmented video contains information on the streams segments, whichcan be manipulated at the gateway for restriction or caching purpose

For example, one of the inline functionality that can be effectivelyperformed by the PGW 404 would be caching of processed contents. Forinstance, the segmented video streams for HTTP Live are usually about 10seconds long and could be cached effectively for the same subscriber orother subscribers with similar subscriber profiles. Another suchfunctionality would be content insertion at the start of a video stream.

In some embodiments, the PGW 404 determines whether to perform inlineprocessing of the video content request based on the subscription levelof the subscriber originating the video content request. The PGW 404 mayalso determine whether to perform inline processing based on a costbenefit analysis involving potential bandwidth saving and increasedinline resource usage that may result from processing the requestinline. In some embodiments, the PGW 404 may choose to perform a videoprocessing method (e.g., inline processing, redirecting) that is themost cost effective for the content provider 408. In other embodiments,the PGW 404 would choose a processing method that can achieve a higherperformance for the subscriber in terms of the delivery speed of therequested content and/or the quality of the delivered content.

Upon deciding not to send the request 702 to the video processing server406, the ACS directs the request 702 to an internal video processingserver. The internal video processing server then forwards the request702 to the content provider 408. The content provider processes therequest 702, generates a response 704, and sends the response 704 to theinternal video processing server in the PGW 404. The internal videoprocessing server performs inline dynamic processing of the response 704to generate an inline-processed response 706. The video processingserver then sends the inline-processed response 706 back to the UE 402via PGW 404.

Mobile Subscriber and Gateway

The mobile subscriber described above can communicate with a pluralityof radio access networks using a plurality of access technologies andwith wired communication networks. The mobile subscriber can be asmartphone offering advanced capabilities such as word processing, webbrowsing, gaming, e-book capabilities, an operating system, and a fullkeyboard. The user equipment may run an operating system such as SymbianOS, iPhone OS, RIM's Blackberry, Windows Mobile, Linux, Palm WebOS, andAndroid. The screen may be a touch screen that can be used to input datato the mobile device and the screen can be used instead of the fullkeyboard. The mobile subscriber may have the capability to runapplications or communicate with applications that are provided byservers in the communication network. The user equipment can receiveupdates and other information from these applications on the network.

The mobile subscriber also encompasses many other devices such astelevisions (TVs), video projectors, set-top boxes or set-top units,digital video recorders (DVR), computers, netbooks, laptops, notebooks,and any other audio/visual equipment that can communicate with anetwork. The user equipment can also keep global positioningcoordinates, profile information, or other location information in itsstack or memory. The user equipment can have a memory such as a computerreadable medium, flash memory, a magnetic disk drive, an optical drive,a programmable read-only memory (PROM), and/or a read-only memory (ROM).The mobile subscriber can be configured with one or more processors thatprocess instructions and run software that may be stored in memory. Theprocessor can also communicate with the memory and interfaces tocommunicate with other devices. The processor can be any applicableprocessor such as a system-on-a-chip that combines a CPU, an applicationprocessor, and flash memory. The interfaces can be implemented inhardware or software. The interfaces can be used to receive both dataand control information from the network as well as local sources, suchas a remote control to a television. The user equipment can also providea variety of user interfaces such as a keyboard, a touch screen, atrackball, a touch pad, and/or a mouse. The user equipment may alsoinclude speakers and a display device in some embodiments.

The gateway described herein can implement multiple and differentintegrated functionalities. In some embodiments, one or more of anaccess service network gateway (ASNGW), mobility access gateway (MAG),an HRPD serving gateway (HSGW), a mobility management entity (MME), apacket data serving node (PDSN), a foreign agent (FA), a local mobilityanchor (LMA), a PDN gateway (P-GW), and a home agent (HA) can beimplemented on a gateway. Other types of functionalities that can alsobe implemented on a gateway in other embodiments are a Gateway Generalpacket radio service Support Node (GGSN), a serving GPRS support node(SGSN), a packet data inter-working function (PDIF), a base station, aaccess network, a User Plane Entity (UPE), an IP Gateway, an accessgateway, a session initiation protocol (SIP) server, a proxy-callsession control function (P-CSCF), and an interrogating-call sessioncontrol function (I-CSCF). In certain embodiments, one or more of theabove-mentioned other types of functionalities are integrated togetheror provided by the same functionality. For example, an access networkcan be integrated with a PDSN. A gateway can include a PDSN, a FA, a HA,a GGSN, a PDIF, an ASNGW, a UPE, an IP Gateway, an access gateway, orany other applicable access interface device. In certain embodiments, agateway is provided by Starent Networks, Corp. of Tewksbury, Mass. in aST16 or a ST40 multimedia platform.

The gateway can also support sessions originated from a Femto basestation, which would connect to the gateway through a broadband network.A person or corporation may use a Femto base station in a home orbusiness to support one or more mobile subscribers. The gateway canprovide trigger based traffic management during a handoff from a Femtobase station to a WiMAX or other macro base station, while maintainingtraffic management for the mobile node. In certain embodiments, agateway device is provided by Starent Networks, Corp. of Tewksbury,Mass. on an ST16 or ST40 multimedia platform.

FIG. 8 illustrates a gateway 800 in accordance with certain embodiments.The gateway can include slots for loading application cards 810including processor(s) 810A and memory 810B and line cards 812. Amidplane 814 can be used in the gateway to provide intra-gatewaycommunications, power connections, and transport paths between thevarious installed cards. The midplane 814 can include buses such as aswitch fabric, a control bus, a system management bus, a redundancy bus,and a time division multiplex (TDM) bus. The switch fabric is anIP-based transport path for user data throughout the gateway implementedby establishing inter-card communications between application cards andline cards. The control bus interconnects the control and managementprocessors within the gateway. The gateway management bus providesmanagement of system functions such as supplying power, monitoringtemperatures, board status, data path errors, card resets, and otherfailover features. The redundancy bus provides transportation of userdata and redundancy links in the event of hardware failures. The TDM busprovides support for voice services on the system.

The gateway supports at least two types of application cards: a switchprocessor card and a packet accelerator card. The switch processor cardserves as a controller of the gateway and is responsible for such thingsas initializing the gateway and loading software configurations ontoother cards in the gateway. The packet accelerator card provides packetprocessing and forwarding capabilities. Each packet accelerator card iscapable of supporting multiple contexts. Hardware engines can bedeployed with the card to support parallel distributed processing forcompression, classification traffic scheduling, forwarding, packetfiltering, and statistics compilations.

The packet accelerator card performs packet-processing operationsthrough the use of control processors and a network processing unit(NPU). The network processing unit determines packet processingrequirements; receives and transmits user data frames to/from variousphysical interfaces; makes IP forwarding decisions; implements packetfiltering, flow insertion, deletion, and modification; performs trafficmanagement and traffic engineering; modifies/adds/strips packet headers;and manages line card ports and internal packet transportation. Thecontrol processors, also located on the packet accelerator card, providepacket-based user service processing. The line cards when loaded in thegateway provide input/output connectivity and can also provideredundancy connections as well.

An ST40 embodiment of the gateway can support a system management card(SMC) and a packet services card (PSC), which are application cards 810.The system management card is a system control and management card formanaging and controlling other cards in the gateway. The packet servicescard is a high-speed processing card that provides multi-threadedpoint-to-point, packet data processing, and context processingcapabilities, among other things.

The operating system software can be based on a Linux software kerneland run specific applications in the gateway such as monitoring tasksand providing protocol stacks. The software allows gateway resources tobe allocated separately for control and data paths. For example, certainpacket accelerator cards can be dedicated to performing routing orsecurity control functions, while other packet accelerator cards arededicated to processing user session traffic. As network requirementschange, hardware resources can be dynamically deployed to meet therequirements in some embodiments. The system can be virtualized tosupport multiple logical instances of services, such as technologyfunctions (e.g., a MAG, LMA, HSGW, P-GW, MME, PDSN, ASNGW, PDIF, HA,GGSN, or IPSG).

The gateway's software can be divided into a series of tasks thatperform specific functions. These tasks communicate with each other asneeded to share control and data information throughout the gateway. Atask is a software process that performs a specific function related tosystem control or session processing. Three types of tasks operatewithin the gateway in some embodiments: critical tasks, controllertasks, and manager tasks. The critical tasks control functions thatrelate to the gateway's ability to process calls such as gatewayinitialization, error detection, and recovery tasks. The controllertasks mask the distributed nature of the software from the user andperform tasks such as monitor the state of subordinate manager(s),provide for intra-manager communication within the same subsystem, andenable inter-subsystem communication by communicating with controller(s)belonging to other subsystems. The manager tasks can control systemresources and maintain logical mappings between system resources.

Individual tasks that run on processors in the application cards can bedivided into subsystems. A subsystem is a software element that eitherperforms a specific task or is a culmination of multiple other tasks. Asingle subsystem can include critical tasks, controller tasks, andmanager tasks. Some of the subsystems that can run on a gateway includea system initiation task subsystem, a high availability task subsystem,a recovery control task subsystem, a shared configuration tasksubsystem, a resource management subsystem, a virtual private networksubsystem, a network processing unit subsystem, a card/slot/portsubsystem, and a session subsystem.

The system initiation task subsystem is responsible for starting a setof initial tasks at system startup and providing individual tasks asneeded. The high availability task subsystem works in conjunction withthe recovery control task subsystem to maintain the operational state ofthe gateway by monitoring the various software and hardware componentsof the gateway. Recovery control task subsystem is responsible forexecuting a recovery action for failures that occur in the gateway andreceives recovery actions from the high availability task subsystem.Shared configuration task subsystem provides the gateway with an abilityto set, retrieve, and receive notification of gateway configurationparameter changes and is responsible for storing configuration data forthe applications running within the gateway. Resource managementsubsystem is responsible for assigning resources (e.g., processor andmemory capabilities) to tasks and for monitoring the task's use of theresources.

Virtual private network (VPN) subsystem manages the administrative andoperational aspects of VPN-related entities in the gateway, whichinclude creating separate VPN contexts, starting IP services within aVPN context, managing IP pools and subscriber IP addresses, anddistributing the IP flow information within a VPN context. In someembodiments, within the gateway, IP operations are done within specificVPN contexts. The network processing unit subsystem is responsible formany of the functions listed above for the network processing unit. Thecard/slot/port subsystem is responsible for coordinating the events thatoccur relating to card activity such as discovery and configuration ofports on newly inserted cards and determining how line cards map toapplication cards.

The session subsystem is responsible for processing and monitoring amobile subscriber's data flows in some embodiments. Session processingtasks for mobile data communications include: A10/A11 termination forCDMA networks, GSM tunneling protocol termination for GPRS and/or UMTSnetworks, asynchronous PPP processing, packet filtering, packetscheduling, Difsery codepoint marking, statistics gathering, IPforwarding, and AAA services, for example. Responsibility for each ofthese items can be distributed across subordinate tasks (calledmanagers) to provide for more efficient processing and greaterredundancy. A separate session controller task serves as an integratedcontrol node to regulate and monitor the managers and to communicatewith the other active subsystem. The session subsystem also managesspecialized user data processing such as payload transformation,filtering, statistics collection, policing, and scheduling.

In providing emulation, as MIPv4 is received from a mobile node, thesession subsystem can setup a MIPv4 termination and setup a PMIPv6session towards the core network. A session manager can track themapping of the sessions and processing to provide the emulation andinter-working between the networks. A database can also be used to mapinformation between the sessions, and store, for example, NAI, HoA, AEinformation in some embodiments.

In some embodiments, the software needed for implementing a process or adatabase includes a high level procedural or an object-orientatedlanguage such as C, C++, C#, Java, or Perl. The software may also beimplemented in assembly language if desired. Packet processingimplemented in a gateway can include any processing determined by thecontext. For example, packet processing may involve high-level data linkcontrol (HDLC) framing, header compression, and/or encryption. Incertain embodiments, the software is stored on a storage medium ordevice such as read-only memory (ROM), programmable-read-only memory(PROM), electrically erasable programmable-read-only memory (EEPROM),flash memory, or a magnetic disk that is readable by a general orspecial purpose-processing unit to perform the processes described inthis document.

Although the present disclosure has been described and illustrated inthe foregoing exemplary embodiments, it is understood that the presentdisclosure has been made only by way of example, and that numerouschanges in the details of implementation of the disclosure may be madewithout departing from the spirit and scope of the disclosure, which islimited only by the claims which follow.

1.-20. (canceled)
 21. A system, comprising: a memory capable of storingdata; and a processor configured for using the data, wherein theprocessor is configured to: receive, from a client device, a request forvideo content, wherein the request is addressed to a content provider;determine to redirect the request to a video optimization server; inresponse to determining to redirect the request to the videooptimization server, add additional information to the request togenerate an enriched request; and communicate the enriched request to avideo optimization server, the video optimization server operable torequest the video content from the content provider and dynamicallymodify the video content based on information included in the enrichedrequest.
 22. The system of claim 21, wherein adding additionalinformation to the request to generate an enriched request comprisesadding additional information to a Hypertext Transfer Protocol (HTTP)header of the request.
 23. The system of claim 22, wherein addingadditional information to a HTTP header of the request comprises addinginformation as part of one or more x-header fields of the HTTP header.24. The system of claim 21, wherein adding additional information to therequest to generate an enriched request comprises adding subscriberprofile information associated with a user of the client device to therequest.
 25. The system of claim 21, wherein adding additionalinformation to the request to generate an enriched request comprisesadding a time of day parameter to the request.
 26. The system of claim21, wherein adding additional information to the request to generate anenriched request comprises adding information associated with awatermark to the request.
 27. The system of claim 21, wherein addingadditional information to the request to generate an enriched requestcomprises adding, to the request, information indicating a quality ofservice allocated to a mobile network to carry the video content. 28.The system of claim 21, wherein adding additional information to therequest to generate an enriched request comprises adding an indicationof a radio access technology to the request.
 29. The system of claim 21,wherein the determination to redirect the request to a videooptimization is based at least in part on an address of the contentprovider included in the request for video content.
 30. The system ofclaim 21, wherein the processor is further configured to: receive themodified video content from the video optimization server; and forwardthe modified video content to the client device.
 31. A methodcomprising: receiving, from a client device, a request for videocontent, wherein the request is addressed to a content provider;determining to redirect the request to a video optimization server; inresponse to determining to redirect the request to the videooptimization server, adding additional information to the request togenerate an enriched request; and communicating the enriched request toa video optimization server, the video optimization server operable torequest the video content from the content provider and dynamicallymodify the video content based on information included in the enrichedrequest.
 32. The method of claim 31, wherein adding additionalinformation to the request to generate an enriched request comprisesadding subscriber profile information associated with a user of theclient device to the request.
 33. The method of claim 31, wherein addingadditional information to the request to generate an enriched requestcomprises adding a time of day parameter to the request.
 34. The methodof claim 31, wherein adding additional information to the request togenerate an enriched request comprises adding information associatedwith a watermark to the request.
 35. The method of claim 31, whereinadding additional information to the request to generate an enrichedrequest comprises adding, to the request, information indicating aquality of service allocated to a mobile network to carry the videocontent.
 36. The method of claim 31, wherein adding additionalinformation to the request to generate an enriched request comprisesadding an indication of a radio access technology to the request.
 37. Avideo optimization server comprising: a memory capable of storing data;and a processor configured for using the data, wherein the processor isconfigured to: receive, from a gateway, an enriched request for videocontent, wherein the enriched request includes information added by thegateway to a request for video content, the request received from aclient device, wherein the request is addressed to a content providerand redirected to the video optimization server by the gateway; request,from the content provider, the video content specified by the enrichedrequest; receive, from the content provider, the video content; modifythe video content based on the information in the enriched request thatwas added by the gateway to the request for video content; and send themodified video content to the client device.
 38. The video optimizationserver of claim 37 wherein the information that was added by the gatewayupon which the modification of the video content is based comprisessubscriber profile information associated with a user of the clientdevice to the request.
 39. The video optimization server of claim 37wherein the information that was added by the gateway upon which themodification of the video content is based comprises a time of dayparameter to the request.
 40. The video optimization server of claim 37wherein the information that was added by the gateway upon which themodification of the video content is based comprises an indication of aradio access technology.